1. Technical Field
Embodiments of the present invention relate generally to power allocation within a data processing system and more particularly to a distributed method and system for managing power usage among server data processing systems.
2. Description of the Related Art
Recently, the development of data processing systems (e.g., computer systems) has begun to focus on the amount of electrical power consumed rather than solely on more traditional aspects such as the volume of data stored, the speed at which operations are completed, or the flexibility of the types of operations which may be performed. This is true not only in the context of mobile data processing system devices where the weight and charge/discharge cycle time of portable power sources such as battery cells is critical, but also in the context of desktop or large data processing systems not intended to be user-portable.
In the larger data processing system context, a reduction in power usage or consumption may be necessary to achieve eligibility for certain environmental impact standards or labels such as the “Energy Star” rating system established by the United States Department of Energy and the Environmental Protection Agency or merely to reduce the cost of operating a data processing system associated with system power. The issue of power management is even more critical in larger scale data processing systems such as supercomputers, parallel processing data processing systems (e.g., massively parallel processing systems), server data processing system “farms”, and rack servers.
A rack server is a data processing system including a storage rack element into which one or more server data processing system modules are inserted. In a typical configuration, a single power input or source (e.g., a conventional wall-mounted power outlet) is coupled to each storage rack element with power being distributed or subdivided among the elements of the rack as needed (e.g., via a power distribution unit or “PDU”).
The available space of a rack server is typically defined in terms of rack units or “U” with storage rack elements being available in a variety of sizes (e.g., 14U, 25U and 42U). Conventional server data processing system modules are measured in terms of the number of rack units they occupy, with rack density being determined by the number of “U” occupied within a storage rack element. Until recently, a conventional rack server would include a 42U rack having 6 7U-sized server data processing system modules. More modern rack servers may frequently include 21 2U-sized server data processing system modules, 42 1U-sized server data processing system modules, or even 84 half rack unit-sized or “blade” server data processing system modules.
Each server data processing system module typically includes a separate power supply element and consequently, as the number of modules in a rack server increases, the amount of power consumed may increase disproportionately as compared with a rack server including a smaller number of larger modules. Electrical power usage in such power-dense rack servers may be so great that a single power input/source, server farm, or data center may be unable to provide sufficient power to operate all modules as needed.
In a conventional data processing system, power management is frequently accomplished by reducing rail or source voltages applied to a processing element (e.g., a central processing unit) or the frequency of a clock signal applied to such a processing element in response to a user selection of a particular power “mode” (e.g., maximum system performance or minimum power usage mode) or following the detection of an external event such as the application or removal of an external (e.g., alternating current) power source. While such power management techniques may result in a reduction in the amount of power consumed, they either require explicit user input which may not accurately reflect the power usage needs of a data processing system affected or operate completely independently of data processing system power requirements based upon external events. Moreover, such power management techniques provide no manner to coordinate the power usage of multiple data processing systems which depend on a single power input or source.